package newLeetCode.hash;

import org.junit.jupiter.api.Test;

/**
 * @author moso
 * @Date 2025/5/25 17:50
 */


public class LengStr {
    /**
     * 3. 无重复字符的最长子串
     * 输入: s = "abcabcbb"
     * 输出: 3
     * 解释: 因为无重复字符的最长子串是 "abc"，所以其长度为 3。
     * 示例 2:
     *
     * 输入: s = "bbbbb"
     * 输出: 1
     * 解释: 因为无重复字符的最长子串是 "b"，所以其长度为 1。
     * 示例 3:
     *
     * 输入: s = "pwwkew"
     * 输出: 3
     * 解释: 因为无重复字符的最长子串是 "wke"，所以其长度为 3。
     *      请注意，你的答案必须是 子串 的长度，"pwke" 是一个子序列，不是子串。
     */

    @Test
    void testLengStr(){
        String str = "abbbb";
        StringBuffer res = new StringBuffer();
        int max = 0, l=0, r=0;
        int n = str.length();
        while (r<n){
            StringBuffer strTemp = new StringBuffer(str.substring(l,r));
            while (strTemp.indexOf(String.valueOf(str.charAt(r))) == -1){
                strTemp.append(str.charAt(r));
                r++;
            }
            max = Math.max(max, strTemp.length());
            l = r;
            r++;
        }
        System.out.println(max);
    }

}
